with Interfaces.C; use Interfaces.C;
with SDL_stdinc_h;

package sdl_h is

  SDL_INIT_TIMER : constant := 16#00000001#;  --  sdl.h:55
  SDL_INIT_AUDIO : constant := 16#00000010#;  --  sdl.h:56
  SDL_INIT_VIDEO : constant := 16#00000020#;  --  sdl.h:57
  SDL_INIT_CDROM : constant := 16#00000100#;  --  sdl.h:58
  SDL_INIT_JOYSTICK : constant := 16#00000200#;  --  sdl.h:59
  SDL_INIT_NOPARACHUTE : constant := 16#00100000#;  --  sdl.h:60
  SDL_INIT_EVENTTHREAD : constant := 16#01000000#;  --  sdl.h:61
  SDL_INIT_EVERYTHING : constant := 16#0000FFFF#;  --  sdl.h:62


  -- This function loads the SDL dynamically linked library and initializes
  -- * the subsystems specified by 'flags' (and those satisfying dependencies)
  -- * Unless the SDL_INIT_NOPARACHUTE flag is set, it will install cleanup
  -- * signal handlers for some commonly ignored fatal signals (like SIGSEGV)
  --

   function SDL_Init (flags : SDL_stdinc_h.Uint32) return int;  -- sdl.h:69:50
   pragma Import (C, SDL_Init, "SDL_Init");

  -- This function initializes specific SDL subsystems
   function SDL_InitSubSystem (flags : SDL_stdinc_h.Uint32) return int;  -- sdl.h:72:59
   pragma Import (C, SDL_InitSubSystem, "SDL_InitSubSystem");

  -- This function cleans up specific SDL subsystems
   procedure SDL_QuitSubSystem (flags : SDL_stdinc_h.Uint32);  -- sdl.h:75:60
   pragma Import (C, SDL_QuitSubSystem, "SDL_QuitSubSystem");

  -- This function returns mask of the specified subsystems which have
  --   been initialized.
  --   If 'flags' is 0, it returns a mask of all initialized subsystems.
  --

   function SDL_WasInit (flags : SDL_stdinc_h.Uint32) return SDL_stdinc_h.Uint32;  -- sdl.h:81:56
   pragma Import (C, SDL_WasInit, "SDL_WasInit");

  -- This function cleans up all initialized subsystems and unloads the
  -- * dynamically linked library.  You should call it upon all exit conditions.
  --

   procedure SDL_Quit;  -- sdl.h:86:43
   pragma Import (C, SDL_Quit, "SDL_Quit");

  -- Ends C function definitions when using C++
end sdl_h;
